热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

iOS64bit@try{...}@catch{...}无效

如何解决《iOS64bit@try{}@catch{}无效》经验,请问有没有懂的朋友?

我有一个非常奇怪的问题.

最近我为我的iOS项目(arm64)添加了64位支持,从那以后,我开始接收我的代码片段中未被捕获的异常@try...@catch(我正在使用Crashlytics进行崩溃报告).我设法在我的应用程序中的任何地方使用以下代码行重现问题(我在其中init一个视图控制器中编写了它们):

@try {
    NSMutableDictionary *m = [[NSMutableDictionary alloc] init];
    NSString *s;
    m[s] = @"poop";
} @catch (NSException *e) {
    NSLog(@"POOP");
}

该异常由UncaughtExceptionHandler而不是该@catch子句捕获.我很困惑这会导致什么.控制台中的输出:

2015-02-22 19:19:53.525 [391:30650] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** setObjectForKey: key cannot be nil'
*** First throw call stack:
(0x18823a59c 0x1989400e4 0x1881251f8 0x10011e2f4 0x10011e068 0x10010e480 0x10010db78 0x10010d944 0x1000a8050 0x100075d88 0x100075160 0x100142044 0x100141f6c 0x18c9ecaa0 0x18caa1fb4 0x18caa1eb0 0x18caa134c 0x18caa0ff8 0x18caa0d18 0x18caa0c98 0x18c9e9648 0x18c341994 0x18c33c564 0x18c33c408 0x18c33bc08 0x18c33b98c 0x18cc76dbc 0x18cc77c68 0x18cc75dec 0x1904b162c 0x1881f2a28 0x1881f1b30 0x1881efd30 0x18811d0a4 0x18ca573c8 0x18ca523c0 0x1000747d8 0x198faea08)
libc++abi.dylib: terminating with uncaught exception of type NSException

我尝试删除我拥有的自定义异常处理程序并禁用Crashlytics,仍然没有成功.

当我删除arm64ARCHSVALID_ARCHS代码工作,并预期异常被捕获.

任何信息将不胜感激!


小更新 - 我们的XCTests也开始不捕获异常,直到现在这种行为只发生在物理64位手机上.


推荐阅读
author-avatar
笨笨的小白鼠
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有